Numerous devices, and particularly handheld communication devices, such as mobile telephones, are often manufactured and updated. Each such device requires testing of the device's hardware, software, and communications functionality during and subsequent to the development and design of the device and prior to large scale production and distribution of the new device or of new software to run on a new or legacy device.
Conventional testing systems expose and access internal interfaces of a tested device in order to simulate operation of the device according to predetermined test sequences that have been input. However, such operation of the tested device is insufficient since it does not accurately reflect how the device is ultimately used, i.e., by button presses or actuation of other input hardware, such as scroll bars, wheels, or joy sticks. Further, in case of a failure, an operator may have difficulty determining, e.g., for troubleshooting purposes, the precise failure or its cause if the failure occurs during a long unattended test run. Additionally, with respect to communications, the test is incomplete because communication results at a receiving device, to which a communication from the tested device is transmitted during the test, are unknown and because receipt by the tested device of a communication from another device is not tested.
Other conventional testing systems provide a robotic arm for performing button presses to simulate use of the tested device. A camera may capture screenshots or short videos of the tested device during the test sequence which may be helpful for troubleshooting. However, even these systems are deficient because of their inability to allow for determining results at another receiving device and their inability to test the tested device's functionality upon receipt of a communication from another device.
Additionally, conventional testing systems require tedious and detailed configuration and calibration for each different tested device. This is further exacerbated when a first tested device is removed from the testing system, e.g., to fix a glitch, and then returned to the testing system after testing of a second tested device, for which the testing system was configured after the initial test of the first tested device. This scenario would require a second configuration of the testing system for the second test of the first tested device.